1. Field of the Invention
The present invention relates generally to data storage systems, and more particularly to network file servers.
2. Background Art
Mainframe data processing, and more recently distributed computing, have required increasingly large amounts of data storage. This data storage is most economically provided by an array of low-cost disk drives integrated with a large semiconductor cache memory. Such cached disk arrays were originally introduced for use with IBM compatible host computers. A channel director in the cached disk array executed channel commands received over a channel from the host computer. More recently, a network attachment has been proposed for interfacing the cached disk array to a network. The network attachment, for example, is a computer programmed to communicate with clients on a network by following a network communication protocol, and to communicate with the cached disk array by issuing channel commands. Although this approach has the advantage of using a conventional cached disk array, the capabilities of the cached disk array are under utilized in this configuration, because the network attachment is a bottleneck to data access.
In accordance with one aspect of the invention, there is provided a method of servicing data access requests from clients in a data network. The data network has a first set of data processors receiving client requests for access to a plurality of read-write file systems. A second set of data processors manages locks on the read-write file systems, and a respective one of the data processors in the second set of data processors is presently assigned to manage locks on each of the read-write file systems. The method is used when any one of the data processors in the first set of data processors receives a client request for access to any one of the read-write file systems, as specified by the client request. In response to the data processors receiving the client request, stored assignment information is accessed indicating the respective one of the data processors in the second set of data processors that is presently assigned to manage locks on the file system. Processing for the request is continued by the respective one of the data processors in the second set of data processors indicated by the stored assignment information as being presently assigned to manage locks on the file system. The respective one of the data processors in the second set of data processors indicated by the stored assignment information continues the processing of the client request by performing lock management for the file system for access to the file system as requested by the client request.
In accordance with another aspect of the invention, there is provided a method of servicing a request from a client in a data network for access to a read-write file. A data processor in the network receives the request. The request is decoded to identify the client and a requested data access operation and a file system to which access is requested. Stored authorization information is accessed to obtain access requirements for the requested data access upon the file system, and the request is rejected if access rights of the client do not satisfy the access requirements for the requested data access upon the file system. If the access rights of the client satisfy the access requirements for the requested data access upon the file system, then there is initiated continued processing for the request by a data processor indicated by stored assignment information as presently assigned to access the file system. The data processor indicated by the stored assignment information as presently assigned to access the file system accesses stored locking information indicating whether or not the requested data access operation by the client would be inconsistent with any pending data access operation upon the file system; and if the requested data access operation by the client would be inconsistent with a pending data access operation upon the file system, then processing of the request is suspended, and if the requested data access operation by the client would not be inconsistent with any pending data access operation upon the file system, the requested data access operation upon the file system is performed.
In accordance with another aspect of the invention, there is provided a method of configuring a network file server for servicing requests from clients on a network for read-write access to read-write file systems. The network file server has a cached disk storage subsystem storing the file systems and a multiplicity of data mover computers linking the cached disk storage subsystem to the network for servicing the requests by transferring data between the clients and the cached disk storage subsystem. Data mover computers are configured into a first set of data mover computers and read-write file systems are configured into a first set of file systems. The first set of data mover computers includes a plurality of data mover computers each configured for authorizing requests for access to a plurality of read-write file systems in the first set of file systems. One and only one of the data mover computers in the first set of data mover computers is assigned to perform lock management and data access for each of the file systems in the first set of file systems. Data mover computers not included in the first set of data mover computers are configured into a second set of data mover computers and read-write file systems not included in the first set of file systems are configured into a second set of file systems. The second set of data mover computers includes a plurality of data mover computers configured for authorizing requests for access to read-write file systems in the second set of file systems. One and only one of the data mover computers in the second set of data mover computers is assigned to perform lock management and data access for each of the file systems in the second set of file systems.
In accordance with yet another aspect of the invention, there is provided a method of load balancing for a network file server for servicing requests from clients on a network for read-write access to read-write file systems. The network file server has a plurality of data processors linked to the network for servicing the requests. Each of the data processors is configured for receiving client requests for access to each of the read-write file systems and for checking whether each request is authorized for access to the read-write file system. One of the data processors is assigned to manage locks on each of the read-write file systems for controlling access to the read-write file system. Loading on the data processors assigned to manage locks on the read-write file systems is monitored and the assignments of the data processors to the read-write file systems is changed to reduce loading of more heavily loaded ones of data processors assigned to manage locks on the read-write file systems.
In accordance with still another aspect of the invention, there is provided a method employed by a file system service of a network file server for responding to a request from a client on a network for access to a file in a file system. A data processor on the network receives the request. The request is decoded, and client authorization for access to the file in the file system is checked. Also it is checked whether the file is in a remote file system. The request is exported to the remote file system when the file is in a remote file system, and when the file is not in a remote file system, the request is forwarded for further processing by a data processor assigned to manage access to the file system, and the data processor assigned to manage access to the file system verifies that the file system is exported to the client, and then processes the request and sends a reply to the client.
In a preferred embodiment, a network file server includes a cached disk storage subsystem and data mover computers linking the cached disk storage subsystem to the data network for the transfer of data between the cached disk storage subsystem and the network. Each of the data mover computers maintains a local cache of file access information including locking information for a respective group of files that the data mover can directly access, and an index that indicates the group of files that each data mover can directly access. When a data mover receives from a network client a request to access a file, the,data mover checks the index to determine whether or not it can directly access the file; if so, it accesses its local cache of file access information to directly access the file in the cached disk storage subsystem; if not, it forwards the request from the client to the data mover that maintains the local cache of file access information for the file.